typedef signed char				s8_t;
typedef unsigned char			u8_t;

typedef signed short			s16_t;
typedef unsigned short			u16_t;

typedef signed int				s32_t;
typedef unsigned int			u32_t;

typedef signed long long		s64_t;
typedef unsigned long long		u64_t;

typedef signed long long		intmax_t;
typedef unsigned long long		uintmax_t;

typedef signed int				ptrdiff_t;
typedef signed int				intptr_t;
typedef unsigned int			uintptr_t;

typedef unsigned int			size_t;
typedef signed int				ssize_t;

typedef signed int				off_t;
typedef signed long long		loff_t;

typedef signed int				bool_t;

#ifndef __cplusplus
typedef unsigned short wchar_t;
#endif // !__cplusplus
typedef unsigned wint_t;
typedef unsigned long wctype_t;

#if !defined(__DEFINED_locale_t)
typedef struct __locale_struct * locale_t;
#define __DEFINED_locale_t
#endif

#if !defined(__DEFINED_max_align_t) && !defined(__CLANG_MAX_ALIGN_T_DEFINED)
#if !defined(__cplusplus)
typedef struct { _Alignas(8) long long __ll; long double __ld; } max_align_t;
#elif defined(__GNUC__)
typedef struct { __attribute__((__aligned__(8))) long long __ll; long double __ld; } max_align_t;
#else
typedef struct { alignas(8) long long __ll; long double __ld; } max_align_t;
#endif
#define __DEFINED_max_align_t
#endif
